DMA2D IRQ handler and callbacks functions migration

This section provides information about the HAL DMA2D IRQ Handler and Callbacks functions migration.

HAL DMA2D IRQHandler function

HAL1

HAL2

HAL_DMA2D_IRQHandler(DMA2D_HandleTypeDef *hdma2d)
HAL_DMA2D_IRQHandler(hal_dma2d_handle_t *hdma2d)

HAL DMA2D line event callback

HAL1

HAL2

HAL_DMA2D_LineEventCallback(DMA2D_HandleTypeDef *hdma2d)
HAL_DMA2D_WaterMarkCallback(hal_dma2d_handle_t *hdma2d)

HAL DMA2D CLUT loading complete callback

HAL1

HAL2

HAL_DMA2D_CLUTLoadingCpltCallback(DMA2D_HandleTypeDef *hdma2d)
HAL_DMA2D_CLUTLoadingCpltCallback(hal_dma2d_handle_t *hdma2d)

HAL DMA2D registers callback functions

In HAL1, the function HAL_DMA2D_RegisterCallback is used to register various DMA2D callbacks through a single function with a specific callback ID. In HAL2, distinct functions are available to register each specific DMA2D callback, providing more granularity and control over the callback registration process.

HAL1

HAL2

DMA2D transfer complete callback

HAL_DMA2D_RegisterCallback(&hdma2d, HAL_DMA2D_TRANSFERCOMPLETE_CB_ID, USER_DMA2D_TransferCompleteCallback)
HAL_DMA2D_RegisterXferCpltCallback(&hdma2d, USER_DMA2D_TransferCompleteCallback)

DMA2D transfer error callback

HAL_DMA2D_RegisterCallback(&hdma2d, HAL_DMA2D_TRANSFERERROR_CB_ID, USER_DMA2D_TransferErrorCallback)
HAL_DMA2D_RegisterErrorCallback(&hdma2d, USER_DMA2D_TransferErrorCallback)

DMA2D line watermark callback

HAL_DMA2D_RegisterCallback(&hdma2d, HAL_DMA2D_LINEEVENT_CB_ID, USER_DMA2D_LineEventCallback)
HAL_DMA2D_RegisterWaterMarkCallback(&hdma2d, USER_DMA2D_LineEventCallback)

DMA2D CLUT loading complete callback

HAL_DMA2D_RegisterCallback(&hdma2d, HAL_DMA2D_CLUTLOADINGCPLT_CB_ID, USER_DMA2D_CLUTLoadingCompleteCallback)
HAL_DMA2D_RegisterCLUTLoadingCpltCallback(&hdma2d, USER_DMA2D_CLUTLoadingCompleteCallback)

Related concept: Individual callback registration APIs replace global register and unregister functions


HAL DMA2D unregister callback functions

In HAL1, the functions HAL_DMA2D_UnRegisterCallback is used to unregister various DMA2D callbacks through a single function with a specific callback ID. In HAL2, the unregister callback API has been removed. Instead, callbacks can be managed by re-registering the default HAL DMA2D weak callbacks as needed.

HAL1

HAL2

DMA2D transfer complete callback

HAL_DMA2D_UnRegisterCallback(&hdma2d, HAL_DMA2D_TRANSFERCOMPLETE_CB_ID)
HAL_DMA2D_RegisterXferCpltCallback(&hdma2d, HAL_DMA2D_XferCpltCallback)

DMA2D transfer error callback

HAL_DMA2D_UnRegisterCallback(&hdma2d, HAL_DMA2D_TRANSFERERROR_CB_ID)
HAL_DMA2D_RegisterErrorCallback(&hdma2d, HAL_DMA2D_ErrorCallback)

DMA2D line watermark callback

HAL_DMA2D_UnRegisterCallback(&hdma2d, HAL_DMA2D_LINEEVENT_CB_ID)
HAL_DMA2D_RegisterWaterMarkCallback(&hdma2d, HAL_DMA2D_WaterMarkCallback)

DMA2D CLUT loading complete callback

HAL_DMA2D_UnRegisterCallback(&hdma2d, HAL_DMA2D_CLUTLOADINGCPLT_CB_ID)
HAL_DMA2D_RegisterCLUTLoadingCpltCallback(&hdma2d, HAL_DMA2D_CLUTLoadingCpltCallback)

Related concept: Individual callback registration APIs replace global register and unregister functions